/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package swingDemoEvent;

/**
 *
 * @author Administrator
 */

    import java.awt.*; 
import javax.swing.*;
import java.awt.event.*; 
public class App13_5 extends JFrame implements ItemListener
{
  static App13_5 frm=new App13_5();
  static JCheckBox chk1=new JCheckBox("租体");
  static JCheckBox chk2=new JCheckBox("斜体");
  static JRadioButton rb1=new JRadioButton ("红色");
  static JRadioButton rb2=new JRadioButton ("蓝色");
  static JTextArea ta=new JTextArea ("选项事件类ItemEvent的使用方法",8,30);
  public static void main(String[] args)
  {
    ButtonGroup grp=new ButtonGroup();       //创建一个单按钮组对象
    frm.setTitle("选项事件处理");
    frm.setLocation(200,150);
    frm.setSize(260,220);
    frm.setLayout(new FlowLayout(FlowLayout.LEFT)); 
    grp.add(rb1);                   //将rb1加入到单选按钮组grp中使之成为单选按钮
    grp.add(rb2);
    chk1.addItemListener(frm);      //设置frm为chk1的监听者
    chk2.addItemListener(frm);      //设置frm为chk2的监听者
    rb1.addItemListener(frm);        //设置frm为rb1的监听者
    rb2.addItemListener(frm);        //设置frm为rb2的监听者
    frm.add(chk1);
    frm.add(chk2);
    frm.add(rb1);
    frm.add(rb2);
    frm.add(ta);
    frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frm.setVisible(true);
  }
  public void itemStateChanged(ItemEvent e)   //ItemEvent事件发生时的处理操作
  {
    Font font1=ta.getFont();
    int style1=font1.getStyle();
    System.out.println(style1);
    if(rb1.isSelected()) ta.setForeground(Color.RED);     //判断“红色”单选按钮是否选中
    if(rb2.isSelected()) ta.setForeground(Color. BLUE);
    if((e.getSource()==chk1)||( e.getSource()==chk2))     //判断复选框是否被选中
    {
      if(e.getSource()==chk1) style1=style1^1;   //按位异或运算
      if(e.getSource()==chk2) style1=style1^2;
      ta.setFont(new Font(font1.getName(),style1,font1.getSize()));
      ta.append("\n样式style="+style1+";"+"状态=" +e.getStateChange()+"【1:选中 2:取消】");
    }
  }
}

